package com.codegenerate.demo.controller;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.codegenerate.demo.config.R;
import com.codegenerate.demo.dto.SysTemplateDto;
import com.codegenerate.demo.entity.SysTemplate;
import com.codegenerate.demo.service.impl.SysTemplateServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;


@RestController
@RequestMapping("/sysTemplate")
public class SysTemplateController {
    @Autowired
    SysTemplateServiceImpl sysTemplateService;


    @PostMapping("/list")
    R<List<SysTemplate>> list(@RequestBody SysTemplateDto sysTemplateDto){
        Page<SysTemplate> page = sysTemplateService.page(
                sysTemplateDto.buildPage(),sysTemplateDto.dto2entity().getQueryAll()
        );
        return R.ok(page.getRecords())
                .setCount(page.getTotal());
    }

    @GetMapping("/getItem")
    R<SysTemplate> getItem(int id) {
        return R.ok(sysTemplateService.getById(id));
    }

    @PostMapping("/add")
    R<Boolean> add(@RequestBody  SysTemplateDto sysTemplateDto){
        var entity=sysTemplateDto.dto2entity();
        //设置 默认
        SysTemplate.setDefaultValue(entity);
        return R.ok(sysTemplateService.save(entity));
    }


    @PostMapping("/update")
    R<Integer> update(@RequestBody  SysTemplateDto sysTemplateDto){
        sysTemplateDto.validateUpdate();
        return R.ok(sysTemplateService.getBaseMapper().update(null, sysTemplateDto.dto2entity().getUpdateWrapper()));
    }

    @GetMapping("/del")
    R<Boolean> del(@RequestParam("id") int id) {
        return R.ok(sysTemplateService.removeById(id));
    }
}




